using System;
using System.Collections.Generic;
using System.Text;
using OOFluidFramework.Operators;


namespace OOFluidFramework.Utility
{
    class Delimiter //The base class for all delimiter structure
    {
        public static enum DelimiterType { Rectangle2D, Circle2D };
        public virtual int ReportType();
        
    }
    class Delimiter2DRetangle : Delimiter //a 2-D rectangle box
    {        
        public Vector2 LowerLeft;
        public Vector2 UpperRight;
        public override int ReportType()
        {
            return DelimiterType.Rectangle2D;
        }
    }
    class Delimiter2DCircle : Delimiter //a 2-D circle
    {
        public Vector2 Center;
        protected double r, r2;
        public double RadiusP2
        {
            get { return r2; }
            set { r2 = value;
                  r = Math.Sqrt(r2);}
        }
        public double Radius
        {
            get { return r; }
            set { r = value;
            r2 = r * r;
        }

        }
        public override int ReportType()
        {
            return DelimiterType.Circle2D;
        }
    }
}
